﻿using System;
using Calc.log;

namespace Calc.Web
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        /*
         * В этом блоке программы идет описание переменных, где
         * Znak - Определяет знак, вводимый с кнопки
         * Number1,Number2 - Первое и второе число
         */


        #region Ввод цифр

        /*
         * По нажанию на кнопку с цифрой в поле ввода
         * вводится цифра, соответствующая кнопке
         */

        protected void ButtonAddZero(object sender, EventArgs e)
        {

            if (FgC.Value == "" && FgZero.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}0", TextBox1.Text);
                FgC.Value = "false";
                FgZero.Value = "false";
            }
            else if (FgC.Value == "false" && FgZero.Value == "")
            {
                TextBox1.Text = string.Format("{0}0", TextBox1.Text);
                FgZero.Value = "false";
            }
            else if (TextBox1.Text != "" && FgC.Value == "")
            {
                TextBox1.Text = string.Format("{0}0", TextBox1.Text);
            }
            else if (TextBox1.Text != "" && TextBox1.Text != "0")
            {
                TextBox1.Text = string.Format("{0}0", TextBox1.Text);
            }

        }
       protected void ButtonAddOne(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}1", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
               TextBox1.Text = string.Format("{0}1", TextBox1.Text);
            }

        }
       

        protected void ButtonAddTwo(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}2", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}2", TextBox1.Text);
            }

        }

        protected void ButtonAddThree(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}3", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}3", TextBox1.Text);
            }
        }

        protected void ButtonAddFour(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}4", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}4", TextBox1.Text);
            }
        }

        protected void ButtonAddFive(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}5", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}5", TextBox1.Text);
            }
        }

        protected void ButtonAddSix(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}6", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}6", TextBox1.Text);
            }
        }

        protected void ButtonAddSeven(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}7", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}7", TextBox1.Text);
            }
        }

        protected void ButtonAddEight(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}8", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}8", TextBox1.Text);
            }
        }

        protected void ButtonAddNine(object sender, EventArgs e)
        {
            if (FgC.Value == "")
            {
                TextBox1.Text = "";
                TextBox1.Text = string.Format("{0}9", TextBox1.Text);
                FgC.Value = "false";
            }
            else if (FgC.Value == "false")
            {
                TextBox1.Text = string.Format("{0}9", TextBox1.Text);
            }
        }

        protected void ButtonAddZap(object sender, EventArgs e)
        {
            if (TextBox1.Text != "" && FgZap.Value=="")
            {
                TextBox1.Text = string.Format("{0},", TextBox1.Text);
                FgZap.Value = "false";
                FgC.Value = "false";
            }
            else if (TextBox1.Text != "" && FgZap.Value=="")
            {
                TextBox1.Text = string.Format("{0},", TextBox1.Text);
                FgZap.Value = "false";
            }
            else if (TextBox1.Text == "" && FgZap.Value=="")
            {
                TextBox1.Text = string.Format("{0}0,", TextBox1.Text);
                FgZap.Value  = "false";
            }
        }

        protected void SubAdd(object sender, EventArgs e)
        {
            if (FgS.Value  == "false" && TextBox1.Text != "" && TextBox1.Text != "0" && TextBox1.Text != "0,")
            {
                Sb.Value =Convert.ToString(Convert.ToDouble(TextBox1.Text));
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Sb.Value ) * (-1));
                FgS.Value  = "false";
            }
            if (FgS.Value  == "" && TextBox1.Text != "" && TextBox1.Text != "0" && TextBox1.Text != "0,")
            {
                Sb.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Sb.Value) * (-1));
                FgS.Value = "false";
            }
        }

        #endregion

        #region Нажатие на кнопку с методом

        /* 
         * Операции: сложение, вычитание, умножение, деление:
         * при нажатии на кнопку с соответствующей операцией
         * переменной Znak передается соответствующее значение
         * (+,-,*,/) по значению этой переменной будет известно,
         * какое действие следует выполнить методу MatMet
        */

        //Сложение
        protected void ButtonPlus(object sender, EventArgs e)
        {

            if (TextBox1.Text != "" && Convert.ToDouble(Num1.Value) == 0)
            {
                Num1.Value =Convert.ToString( Convert.ToDouble(TextBox1.Text));
                TextBox1.Text = "";
                Znk.Value = "+";
                FgC.Value = "false";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value == "+")
            {
                Num2.Value =Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value =Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value),Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value != "+")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
                Znk.Value = "+";
            }

        }

        #region

        //Вычитание
        protected void ButtonMinus(object sender, EventArgs e)
        {
            if (TextBox1.Text != "" && Convert.ToDouble(Num1.Value) == 0)
            {
                Num1.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                TextBox1.Text = "";
                Znk.Value = "-";
                FgC.Value = "false";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value == "-")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value != "-")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
                Znk.Value = "-";
            }
        }

        //Умножение
        protected void ButtonYmnog(object sender, EventArgs e)
        {
            if (TextBox1.Text != "" && Convert.ToDouble(Num1.Value) == 0)
            {
                Num1.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                TextBox1.Text = "";
                Znk.Value = "*";
                FgC.Value = "false";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value == "*")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value != "*")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
                Znk.Value = "*";
            }

        }

        //Деление
        protected void ButtonDelenie(object sender, EventArgs e)
        {
            if (TextBox1.Text != "" && Convert.ToDouble(Num1.Value) == 0)
            {
                Num1.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                TextBox1.Text = "";
                Znk.Value = "/";
                FgC.Value = "false";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value == "/")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
            }
            if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0 && Znk.Value != "/")
            {
                Num2.Value = Convert.ToString(Convert.ToDouble(TextBox1.Text));
                Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                Num2.Value = "0";
                TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                FgC.Value = "";
                FgZap.Value = "";
                Znk.Value = "/";
            }
        }

        //Деление числа на 1
        protected void ButtonDelenie1(object sender, EventArgs e)
        {
            if (TextBox1.Text != "")
                TextBox1.Text = Convert.ToString(Operations.Del1(Convert.ToDouble(TextBox1.Text)));
        }

        //Квадратный корень
        protected void ButtonKoren(object sender, EventArgs e)
        {
            if (TextBox1.Text != "")
                TextBox1.Text = Convert.ToString(Operations.Koren(Convert.ToDouble(TextBox1.Text)));
        }

        #endregion

        //Очистка поля для ввода
        protected void ButtonClear(object sender, EventArgs e)
        {
            TextBox1.Text = "0";
            FgC.Value = "";
            FgZap.Value = "";
            
        }

        //Обнулить значения всех переменных
        protected void ButtonClearAll(object sender, EventArgs e)
        {
            TextBox1.Text = "0";
            Znk.Value = "";
            Num1.Value = "0";
            Num2.Value = "0";
            FgC.Value ="";
            FgZap.Value = "";
            
        }

        #endregion

        #region Кнопка Равно

        /*
         * При нажатии на эту кнопку программа выдаст правильный ответ
         */

        protected void ButtonEqual(object sender, EventArgs e)
        {
           
                if (TextBox1.Text != "" && Convert.ToDouble(Num2.Value) == 0 && Convert.ToDouble(Num1.Value) != 0)
                {
                    Num2.Value =Convert.ToString(Convert.ToDouble(TextBox1.Text));
                    Num1.Value = Convert.ToString(Operations.MatMet(Convert.ToDouble(Num1.Value), Convert.ToDouble(Num2.Value), Znk.Value));
                    Num2.Value = "0";
                    TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                    FgC.Value = "";
                    Num1.Value = "0";
                    FgZap.Value = "";
                    if (Convert.ToDouble(Num1.Value) != 0)
                    {
                        TextBox1.Text = Convert.ToString(Convert.ToDouble(Num1.Value));
                        FgC.Value = "";
                        Num1.Value = "0";
                        FgZap.Value = "";
                    }
                }
            }

    }
}

#endregion


        
    
